package com.battery.system.service;

import com.battery.common.core.domain.AjaxResult;
import com.battery.common.utils.ali.AliPayEntity;
import com.battery.system.domain.BO.EndorderBO;
import com.battery.system.domain.Endorder;
import com.battery.system.domain.VO.EndorderVO;

import java.util.List;
import java.util.Map;

/**
 * 订单强制结束申请Service接口
 *
 * @author battery
 * @date 2021-03-12
 */
public interface IEndorderService extends IBaseService<Endorder> {
    /**
     * 查询订单强制结束申请
     *
     * @param id 订单强制结束申请ID
     * @return 订单强制结束申请
     */
    public Endorder selectEndorderById(String id);

    /**
     * 查询订单强制结束申请列表
     *
     * @param endorder 订单强制结束申请
     * @return 订单强制结束申请集合
     */
    public List<Endorder> selectEndorderList(Endorder endorder);

    /**
     * 新增订单强制结束申请
     *
     * @param endorder 订单强制结束申请
     * @return 结果
     */
    public int insertEndorder(Endorder endorder);

    /**
     * 修改订单强制结束申请
     *
     * @param endorder 订单强制结束申请
     * @return 结果
     */
    public int updateEndorder(Endorder endorder);

    /**
     * 批量删除订单强制结束申请
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteEndorderByIds(String ids);

    /**
     * 删除订单强制结束申请信息
     *
     * @param id 订单强制结束申请ID
     * @return 结果
     */
    public int deleteEndorderById(String id);

    List<Endorder> selectEndorderByPartner(Map<String, String> map);

    /**
     * 展示申请结束订单列表
     *
     * @param endorderBO
     * @return
     */
    List<EndorderVO> selectEndorderVOList(EndorderBO endorderBO);

    /**
     * 强制结束订单申请通过，并结束订单
     *
     * @param endorderBO
     * @param entity
     * @return
     */
    AjaxResult forceEndUsed(EndorderBO endorderBO, AliPayEntity entity);

    /**
     * 根据租借记录ID查询对应结束订单信息
     *
     * @param usedId
     * @return
     */
    Endorder selectOneByUsedId(String usedId);
}
